23

» WarCraft 3 / Конвертация картинки в .mdx

Похожие вопросы:

ответ
При конвертации моделей из игр в MDX их вес велик как и вес их текстур ! Я оптимизирую и сжимаю модель через MDLvis а текстуры через BLP Laboratory но их вес все еще внушителен ( Есть ли другие варианты среза веса без дефектов материала ?
Нет. Только удаление лишних анимаций. Остальную оптимизацию веса сделает mdlvis.
При импорте некоторых моделей в карту возникает проблема с их выбором при манипуляции ( Передвижения ) словно их Выбор отсутствует , Думаю некоторые с подобным сталкивались ...
Если модель нельзя выделить в игре курсором, у неё отсутствуют collision shapes (формы коллизии). Их можно добавить в War3ModelEditor -> Окна -> Редактор узлов -> правый клик -> Создать форму - > отредактировать размеры и положение. Их можно добавить несколько, чтобы покрыть модель целиком. Они отвечают за взаимодействие модели с курсором.

Один ресурс - один вопрос, после пойдут замечания.

23

» WarCraft 3 / Странно работает эффект

Похожие вопросы:

ответ
Не берите вы эти ульты для основы своих скиллов, они сделаны через одно место лиж бы работали в капмании, а там дальше хоть потоп.
Сделайте заклинание из канала, а юнитов вокруг делайте неуязвимыми.
ответ
про москитов вот
ответ
Эффекты стакаются в одном регионе (и даже чуть дальше него) крайне сложным образом, и зависит их совместимость от равкода. Я, когда писал погоду для морлоков с этим сталкивался, и возможно описывал проблему... лет 10 назад) Лечится импортом своей таблицы с погодой и подборкой равкодов. Ну и как вариант для более сильного дождя например можно вместо попытки добавить 2 эффекта и той-же таблице просто прописать побольше частиц.
ответ
KaneThaumaturge:
LordDracula, установлю я, например, дефолтную скорость, а если например у героя ботинки или другие баффы на скорость?
Я сейчас посмотрел, с ботинками и аурами все норм, ничего не ломается.
ответ
На винде из за проблем с дровами изредко такое бывает, что пропадает часть эффектов, лечится обновлением дров в ручную.

23

» WarCraft 3 / Взлом карты

Принятый ответ
Похожие вопросы:

ответ
у тебя кусок кода с библиотекой и глобалом
вывод
поставь нормальный редактор
либо ручками j файл правь
ответ
Вон сколько бот ответов выдал хороших, сделай свою карту нормальную без переделок каких либо заброшек
и Ты потом не сможешь её редактировать нормально без знаний JASS. обратно триггеры тебе уже не увидеть точно, возможно придётся даже писать код в блокноте
Тем более это зомби в деревне xgm.guru/p/ziv, автор xgm.guru/user/Fakov был в сети Активность: 01.04.19 01:47
ответ
quq_CCCP, тогда ну нафиг
это полноценный реверс инженеринг уже будет
Asaaaaaar, короче это потребует кучу времени и никто тут этим заниматься скорее всего не будет
думаю даже за платно сложно будет найти того кто согласится убить кучу времени на это
ответ
Нельзя. Потому что даже в твоей сугубо триггерной карте, когда запускается команда на исполнение все конвертируется в jass/( Когда ты играешь или проверяешь карту)
Триггер . лишь графическая оболочка, как бы кубики на которых написаны буквы, но все-равно все происходит на jasse ( уже иногда на lua)
Короче нельзя. скачивай jngp и учи хотя бы простые джассовые команды.
Хотя даже зная его взломанная карта часто выкладывает огромный набор проограмного кода без разделения где конкретный текстовый триггер инициализации или определенного дейсвтия.
ответ
mqp editor/mpq master + notepad++/jasscraft + slk editor + vex's tools

но все делается ручками и никак иначе, данные РО еще можно восстановить, но код/триггеры в "первозданном" виде ты уже не восстановишь, только если вручную

23

» WarCraft 3 / Реалистичный снаряд

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.
ответ
Рассмотрим на примере модельки простого огра, у него есть анимация атаки slam и удар дубиной по земле
  1. Старт атаки
  2. Создаём упреждающий в области впереди героя (маркер, ну эффект ауры например), чтобы игрокам было понятно что скоро тут что-то произойдёт
  3. Проигрываем анимацию "attack slam" или нужную другую, для замаха дубиной, если надо больше и не хватает стандартной скосроти, замедляем скорость анимации
  4. Визуально подгадываем или упытным путём определяем время касания дубиной полна от 1 до 4 сек, на ваше усмотрение
  5. Запускаем новый разовый таймер с нужным периодом, и как таймер сработает, создаём спец эффект, и наносим урон юнитам в области эффекта
(это самый простейший способ, хоть на гуи можно сделать)

23

» WarCraft 3 / Что лучше использовать?

Похожие вопросы:

ответ
TriggerSleepAction
или wait
когда же ты прочтёшь статьи
ибо это одно и тоже
юзай что хочешь
разницы нету
предлагаю закрывать все его вопросы автоматом ибо они все по основам которые описаны в нескольких базовых статьях
ответ
Если в триггере много действий, загружающих память, то лучше не использовать малый период. А если в нём ещё утечки памяти, то рано или поздно лаги сделают игру невозможной.
По сути, и таймер, и периодическое событие запускают действия в определённое время, то есть действуют одинаково. Смотри, что тебе удобнее.
ответ
abatyr, у твоих способностей одинаковый id приказа. Нужно создать способность на основе "Канала", дать им разные id приказа, а настоящие способности кастовать даммиками.
ответ
Протестировал и сказать что лучше нельзя
ReplaceUnitBJ имеет 4 разных варианта
Добавление абилки "Тёмный" это как бы 5-й вариант замены юнита
Тут зависит от конкретного случая кого и что надо заменить.
Да, если заменять юнита на героя (или наоборот) могут возникнуть неполадки
ответ
В варике блокираторы пути 2х2 и 4х4 (маленький и большой). Воздух блочит путь для воздуха, суша для суши, двусторонний для суши и воздуха. Если в одной точке стоят 4 маленьких блокиратора, лучше заменить на один большой блокиратор. А вообще, лучше использовать вариант, который указал quq_CCCP. Там типо с фотошопом надо как-то работать, сетку желательно создать на которой будешь рисовать свой блокиратор пути... Короче на хгм есть где-то статейка, возможно найду


что делает блокиратор поля зрения я без понятия, скорее всего блочит и путь, и поле зрения, если поставить высоту препятствия

23

» WarCraft 3 / Проблема с редактором 1.26

Принятый ответ
Похожие вопросы:

ответ
Не сов сем по теме, но близко - вот такое можно реализовать на новых функциях 1.31
Увы, полноценного инвентаря на аналогичных функциях пока не выкладывали в общий доступ, каждый пилит себе свою версию.
ответ
Razor_dex, сконвертируй карту, потом открой в стандартном 1.26 редакторе, удали комментарий Рок Лии\Otome Renge
Для гуи-гигантов это типичная болячка, просто битый комментарий который содержит в себе информацию о нескольких действиях, считай как обычный триггер только отображается как комментарий
Возникает такое скорее всего при копировании

P.S. странно что редакторы до 1.31 не обращают внимания на такой баг
ответ
Xgm бот плохо работает... эй... 6 подобный вопрос


23

» WarCraft 3 / Проблема с редактором

Похожие вопросы:

ответ
Проблема решена. Я сделал так: Удалил все триггеры и потом по папочке восстанавливал, когда нашли в чем проблема удалили триггер и все заработало, спасибо за помощь!
ответ
Тебе нужно поставить "Фиксированные настройки игроков" во вкладке Кланы.
ответ
SirDragdord, никак, последние патчи баганые, там много чего не работает, играть там не вочто, хотите поиграть - 1.26а к вашим услугам, старшие патчи вара только для ознакомления и обучения, пока не вышел рефордж там нечего делать.
ответ
~8gabriel8:
Попробуй откатить общий доступ, подозреваю всё-таки его.
ответ
Xgm бот плохо работает... эй... 6 подобный вопрос


23

» WarCraft 3 / Туман войны

Похожие вопросы:

ответ
~8gabriel8:
Импортируй в кампанию шрифт по пути Fonts/FRITZQT__.ttf, только не уверен, что правильное имя у шрифта. Уточни в war3.mpq, там он лежит.
ответ
~8gabriel8:
Если у тебя в JNGP есть это, то можешь там смотреть/менять.
А вообще про путь к шрифту ты же спрашивал: Fonts/FRITZQT__.ttf
ответ
XGM Bot:
Похожие вопросы:

ответ
Эмм что за ерунда, сократил код, убрав всё лишнее, но утечки все равно остаются, по 1.5 - 2 хэндла за каждое нанесение урона (тип хэндла не знаю как посмотреть). Когда триггер отключаешь, то всё нормально.
Сокращенный код
function SDMSCreateTextTag takes nothing returns nothing
    local unit u=GetTriggerUnit()
    local unit s=GetEventDamageSource()
    local integer i=GetConvertedPlayerId(GetOwningPlayer(u))
    local texttag tt=CreateTextTag()
    local real dmg=GetEventDamage()

    if ( dmg > 1.00 ) and ( dmg < 9999.00 ) then
        if GetPlayerId(GetOwningPlayer(u))==12 then
            call SetTextTagText(tt, "|cff9db9eb-"+I2S(R2I(dmg))+"|r", 0.023)
        else
            call SetTextTagText(tt, "|cffffa500-"+I2S(R2I(dmg))+"|r", 0.023)
        endif
        call SetTextTagPosUnit(tt, u, 0)
        call SetTextTagColor(tt, 255, 255, 255, 255) 
        call SetTextTagVelocity(tt, 0.05325*Cos(90 * bj_DEGTORAD), 0.05325*Sin(90 * bj_DEGTORAD))
        call SetTextTagPermanent(tt, false)
        call SetTextTagLifespan(tt, 1.0)
        call SetTextTagFadepoint(tt, 0.0)
    endif
    call PolledWait(2.0)

    call DestroyTextTag(tt)
    set u=null
    set s=null
    set i=0
    set dmg=0
    set tt=null
endfunction

function SDMSTriggerRegisterUnitDamaged takes nothing returns nothing
    call TriggerRegisterUnitEvent(udg_SDMStrigger,GetEnteringUnit(),EVENT_UNIT_DAMAGED)
endfunction

function theSDMSTriggerActions takes nothing returns nothing
    local trigger UnitEnter=CreateTrigger()

    call TriggerRegisterEnterRectSimple(UnitEnter, gg_rct_Arena)
    call TriggerAddAction(UnitEnter,function SDMSTriggerRegisterUnitDamaged)

    set UnitEnter=null
endfunction

function InitTrig_the_SDMS_Trigger takes nothing returns nothing
    local trigger tr=CreateTrigger()

    set udg_SDMStrigger=CreateTrigger()//Тут также меняется название глобальной переменной типа триггер.
    call TriggerAddAction(udg_SDMStrigger,function SDMSCreateTextTag)
    call TriggerRegisterTimerEventSingle(tr,0.0)
    call TriggerAddAction(tr,function theSDMSTriggerActions)

    set tr=null
endfunction
Wait вызывает утечки ((
Пришлось делать через таймер

ответ
~8gabriel8:
Больше похоже на глюк самой карты. Так и не понял, откатить шрифт на стандартный не получается?
ответ
Нужно в игровых константах изменить путь к шрифту.

23

» WarCraft 3 / Wait until

Похожие вопросы:

ответ
MoreDoPass, для этого и нужны массивы, чтобы было MUI
  1. первый триггер сохраняет все нужные данные на один общий индекс, например PlantmineCount, и увеличивает этот индекс на один.
  2. второй триггер каждые 0,0Х секунд пробегается по массиву от нуля до PlantmineCount, проверяет расстояние и если оно подходит, делает нужные действия. После этого, чтобы тот же элемент не обрабатывался заново, нужно заменить его во всех массивах на последний и уменьшить PlantmineCount на 1. И счетчик цикла тоже уменьшить на 1, иначе этот последний элемент будет пропущен тк индекс по циклу уйдет дальше.
ответ
ScorpioT1000, мне кажется, регионы он там не должен создавать =) вот точки да, а регионы же обычно берут из ныне существующих регионов. если создадим его в редакторе, его же и указывают в функции. ниче не создает.
такая гуи-команда странная, не помню такую в boolean. Типа ПРОВЕРКА что все юниты группы в регионе?

в скрине мб локалки не обнулены. там BJ-функции, раскрой и посмотри нет ли их. пример
советовал бы строить по-другому конструкцию.
если честно, не понятно, что за карту ты скинул. я тебе просто пример оптимизации на гуи показал. Но не решения ваших проблем. на jass этого бы не потребовалось, ибо на гуи приходится изворачиваться из-за ограничении команд и утечности bj-функции. там группы утекают, где-то не обнуляют/не удаляют.

Я короче более менее понял вашу ситуацию. 4триггер у вас не будет работать из-за переменной. там надо в фильтре вместо Picked unit ставить Matching Unit. С 4 примером я кажется ошибся. Там у меня по другому работает: выделяю всех из группы и нахожу рандомного юнита, а надо выделить вокруг гг, которые состоят в группе.

23

» WarCraft 3 / Иконка атаки, защиты.

Похожие вопросы:

ответ
система урона + ледяные стрелы = при получении урона, идет проверка на бафф, удаляешь бафф и, либо кастуешь даммиком способность кислотная бомба или духовное пламя с отриц. значением минус в том что бафф будет висеть как положительный. Либо под таймером даешь даешь способность повышения защиты с отриц. значением.
Учитывая что 21 век, систему урона найти и поставить, не составит труда.
ответ
Это стандартная иконка cancel.blp
ответ
Rасательно вопроса как добавить в книгу заклинаний больше 12 скиллов - можно добавить книгу в книгу и новой книге сделать ещё несколько скиллов и ещё 1 или несколько книг. В каждую книгу можно ещё по книге и так далее.
Главное - ID приказа у всех книг должны быть разные.

Иконки способностей кольца, когтей и т.д. отображаться не будут, ты можешь отображать скиллы-пустышки, а (только это на всякий случай предложенный вариант!) герою выдавать сам предмет, предварительно вытряхнув из его инвентаря все предметы на пол. После добавления в пустой инвентарь нужного предмета, например когтей - заполняем ещё 4 слота предметами-пустышками, затем даём предмет со способностью "предметы герой", у этой способности для предмета должна стоять галочка "относится к предмету", обязательно. После этого инвентарь снова очистится уже сам, однако добавленный предмет на атаку будет иметь эффект. После чего можно подобрать с пола предметы героя и отдать ему триггерно.

Почему не стоит добавлять способность когтей триггерно? - потому что 2 добавленные одинаковые способности не суммируются. Два одинаковых предмета же суммируются.
Есть ли минусы у вышеописанного способа? - скорее всего удалить добавленный бонус нормально не выйдет. Придётся вытряхать инвентарь удалением способности "предметы герой" у самого героя, а это тот ещё геморрой -восстановить потом всё, что должно было остаться неудалённым.
ответ
Black Soul:
Прикрепил к сообщению карту. Замена сделана на основе исследования "Ракеты" паровых танков. Думаю, как правильно копировать в свою карту, будет понятно.
8gabriel8, Он имел ввиду не иконку исследования, а вот эту иконку:
В оригинале она не меняется при исследовании улучшений. А он хочет, чтобы менялась.

23

» WarCraft 3 / Музыка на карте

Похожие вопросы:

ответ
Fraps, это просто утечка памяти
десинк вызывают действия происходящие локально (то есть на компьютере 1 игрока они произошли а на компьютере 2 они не происходят)
ответ
Для использования звуков, добавленных вами в карту, вы должны получить к ним доступ через редактор триггеров. После импорта файлов и добавления стандартных звуков или музыки в правую часть списка звуков их можно воспроизводить через редактор триггеров путем использования команд "Звук" - "Воспроизвести звук" или "Звук" - "Воспроизвести музыку".
Статья: xgm.guru/p/wc3/worldedit_guide_6
ответ
Ну, я не помню какой формат там точно нужен
Открой любую карту с музыкой и посмотрим
ответ
"Музыка" используется как музыка?
И запускается через PlayMusic?
ответ
~8gabriel8:
Редактор на русском языке.
Это лишь минус, чтобы убирать такие декорации, нужно поставить под ними область и триггерно воспроизводить для декораций нужного типа в этой области анимацию death либо hide.
Вот примерно где находится нужное тебе действие:
У стандартных спецэффектов обычно анимации stand-обычное состояние, death-гибель, иногда birth-появление, hide-скрыть, show-показать.

23

» WarCraft 3 / Как забыть улучшение

Похожие вопросы:

ответ
Готово!
ответ
Причина: причин было много, а я искал лишь одну
Самыми распространёнными оказались элементарные ошибки в коде, отсутствие параметров, параметры не того типа данных (привет динамическая типизация) или лишние параметры, из за чего происходили "рандомные рассинхроны при обрыве потока"
Огромное спасибо пользователю prog, что откликнулся и смог найти ошибки, а нашёл он их при помощи языкового сервера sumneko lua для VScode

23

» WarCraft 3 / Приказ добычи ресурсов

Похожие вопросы:

ответ
ИИ стандартный, полагаю? Стандартному ИИ вроде как вижн не важен, он и так знает где все находятся, если мне не изменяет память. Как от него не прячься, найдет сразу. Если уж очень хочется - давать юнитов нейтралам и делать их союзным всем ботам. (игроков 16, если не изменяет память). Или давать союзным игрокам, при наличии. По крайней мере не будут мчаться в след за армией. Однако вполне могут быть более качественные решения проблемы, я стандартный ИИ не изучал, не могу быть уверен в офигительности предложенного решения. :)
ответ
Урон по дереву можно отследить с помощью хеша и дерева с 1 хп. Каждому дереву на карте поставить в соответствие n единиц жизней. При смерти дерева проигрывать анимацию получения урона и немедленно возрождать, загружать их хеша значение хп, перезаписывать его и сохранять.
Чтоб проверить что урон нанёс именно рабочий - нужно проверять наличие юнитов определённого типа вокруг дерева с соответствующим приказом, цель которого - это дерево. Для отлова цели приказа также юзается система на всё том же хеше. Нужна бд всем абилкам лесорубов.
Насчёт золота сказать трудно. Нужно посмотреть какие есть состояния юнита и какие из них связаны с пребыванием в руднике, приказы и прочее. Подозреваю что юниты вроде рабочих альянса покидают карту когда заходят в рудник. Но это нужно тестить и костылить. Чистого способа нету.
ответ
biridius, если это есть в РО, то прибегать к триггерам явно не обязательно.

23

» WarCraft 3 / Два уровня предмета?

Похожие вопросы:

ответ
NekoriDes, мб я тупой но зачем тебе 2 триггера с один и тем же событием?
не проще ли запихнуть всё в 1 триггер
хотелось бы увидеть и функции инициализации(создание триггера, добавление событий/условий/действий)
и код лучше кидай txt/j файлом
либо юзай это
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены

23

» WarCraft 3 / Сравнение Триггеров

Похожие вопросы:

ответ
спасибо всем, подали пару идей. буду работать
ответ
Никак. Регионы и области не сравниваются параметрически, то есть координатами, которые покрывают. Но можно узнать, находится ли точка в том или ином регионе. То есть, в твоем примере, проверить, находится ли юнит одновременно и в tempReg и в tempReg2.
ответ
~8gabriel8:
PT153:
Потому что число 0.01, сложенное 10 раз, меньше 0.1.
Выводи число следующим кодом, где r - твоё real число.
call DisplayTimedTextToPlayer(GetLocalPlayer(), 0., 0., 5., R2SW(r, 0, -1))
PT153:
у парня проблемы с алгоритмом, в какой вселенной 0.01 * 10 не 0.1?
В компьютерной. И да, 0.01 * 10 тоже может быть не равно 0.01 + ... + 0.01. Потому что складываются и умножаются real по-разному.
Hate, надо просто использовать целочисленные, или пользоваться ==, в JASS == округляет числа для сравнения (!= не округляет).

Пороверил разные варианты, сразу упомяну, что с целочисленными всё огонь, просто какие-то другие воспоминания с ними всплывали.
PT153, сначала не понял, зачем мне твоя строчка, она всего лишь выдавала 0.1 вместо 0.100, но тестировал разные варианты и всё прояснилось. Если задавать шаг 1.0, то всё исправно считается до 10.0, если задавать шаг 0.2, то всё считается до 2.2 и отображается ровно, но если сделать шаг 1.01, то вот тут и появляется то, ради чего ты эту строчку дал.
Именно с дробной частью косяк, и теперь не знаю как выбрать лучший ответ, по идее у тебя в каждом комментарии полезная информация. Просто объединил их в итоге.

Hate:
сначала прибавляет, а затем проверяет, потом удивляется почему 0.11
Обычно просто отшучиваюсь на подобные комментарии, но сейчас так всё грустно в нём, что не смогу.
ответ
Способность некоторых зданий ночных эльфов, "Сьесть дерево" в настройках способности есть параметры за кол-во полученого здоровья и времени за которое оно будет восстановлено.
ответ

23

» WarCraft 3 / Как использовать vJass и cJass?

Принятый ответ
Похожие вопросы:

ответ
//! nocjass
ответ
FabulousTiger, большенству людей сложно влиться в чужой проект если тот абсолютно не отвечает некоторым критериям либо человеку может просто не нравится задумка. И это далеко не та ситуация когда нужно проглотить свое негодование, уровень роботы такого человека будет напрямую зависеть от того насколько ему нравится проект.
KaneThaumaturge, твоя скорость изучения JASS будет напрямую зависеть от того насколько ты в это захочешь втянуться. Правда должен предупредить что есть люди которые просто не приспособлены к тому что-бы понять програмирование в его ярчайшем проявлении, такие люди обычно при разработке проекта опираются на то что умею лучше всего.
Я из опыта скажу что: есть некоторые вещи которые возможно создать только при помощи JASS, но реализацию большенства идей можно выполнить при помощи GUI. Покопайся в чужих наработка пойми что ты хочешь и что можешь использовать из предоставленного тебе и вперед делать проект.
ответ
В свойствах убери заголовочный файл и в линкере с настройками поиграй

23

» WarCraft 3 / ИИ и диалоги

Похожие вопросы:

ответ
[C] - Боевая единица умирает
[У] - Тип боевой единицы == тип "другого юнита"
[Д] - Начать диалог
ответ
Конструкция сделана верно. Только кто должен быть в области, я не понял.
ответ
но условие можно переделать как угодно...например для входящего юнита в область это только пример того как записать диалог в таблицу и очищать хэндл чтобы не вызвал утечек
NazarPunk:
потом я его очищаю
Кто первый клик, того и тапки))
)))
принцип наверное понятен?
можно и не очищать диалог при входе в область hero spawn а потом но лучше очищать заранее
теперь так выглядит
спасибо за ответы
ответ
По диалогам вопрос снят, вроде нашёл. В триггерах. Вопрос актуален по инфе на экране, я так понимаю, что тоже где-то там, но мб подскажите конкретнее?

Все вопросы сняты, разобрался сам =D
ответ
  1. с помощью кода включить нужную анимацию у юнита, разумеется анимация должна быть у модели, у старых варовских моделей анимация разговора была лишь на портрете, это отдельная модель, кроме всяких крипов с мордами в 3 полигона.
  2. Достать то можно - что толку, они имеют иной формат, с ними ниче сделать низя, публичного софта для редактирования и изучения нет, поэтому рефорджевские модели никому и ненужны - ты с ними ниче и не сделаешь.

23

» WarCraft 3 / Помогите вспомнить карту!

Похожие вопросы:

ответ
8gabriel8, точно. Их там нет. Я перепутал. Не в константах, а в интерфейсе.
Текст - Общий - Жульничество разрешено
ответ
закрыт по таймауту
ответ
Eota: Exodus
оригинальный автор DarnYak
поищи его последнюю карту...
помню раньше ещё был оф. сайт... но он вроде упал...
поиграть в эту карту еще. Никто из друзей и знакомых не помнит, но не приснилась же мне эта карта!
не приснилась... хорошая карта, но толпой играть слишком легко...

P.S. а нет, сайт ещё жив, кажется
ответ
ответ
Ага, есть эта карта, забыл как этот дефенс, у нас выкладывали его... Название забыл.

Ага, вот ссыль

23

» WarCraft 3 / Помощь с триггерами

Похожие вопросы:

ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
Вот, должно работать. Если понадобится временное подчинение - таймер поможет.
ответ
XGM Bot:
Похожие вопросы:

ответ
Steal nerves:
Честно я не знаю меняет родная защита и прочие характеристики юнита при использовании тёмный. Давно не игрался с этим. Да и делал я типа кур. Говорят там только модель меняется. А вот перевоплощение да там могут меняться атрибуты и прочее. Если так то редактируйте этого юнита. И вообще проверяйте сами все
При использовании абилы тёмный сам юнит никуда не удаляется, просто модель меняется (сам даже удалял много ещё) - трудно проверить?
Сделал с перевоплощением. Спасибо за идею.
Rare:
А почему ты не можешь просто сделать так,чтобы предмет с твоей броней просто одевался на героя.Это самый простой вариант,в котором есть только одна проблема-найти/сделать модель этого предмета.
Работаю с ВоВ-моделью. Проще сделать много скинов к ней, как в самой ММО, чем модель брони.
ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
Вот, должно работать. Если понадобится временное подчинение - таймер поможет.
ответ
Afterdeath, ну если поймаешь меня сегодня-завтра в Discord'е (discord.gg/Rze5sGP), то могу сделать в лучшем виде.

ответ
Вобщем, с какого-то ... не работал цикл. Пришлось поставить просто подряд много повторяющихся действий (развернуть цикл и прописать отдельно каждое из его повторений), так заработало. Странный этот редактор...
ответ
При осмотре карты тоже не совсем понял почему игра перестает строительство. Как решение, ты можешь даммику строительства поменять расу на нежить, таким образом уже здание само будет достраиваться.
Поскольку у тебя на карте при беглом осмотре юнитов строителей я не заметил, то выше указанное решение как раз то что нужно тебе.
П.С.
Под какую версию игры рассчитана данная карта?

23

» WarCraft 3 / Система полета снарядов

Похожие вопросы:

ответ
Идеальный вариант чтобы игрок сам мог решать, нужно ли ему это. Сделай, если будет смотреться неплохо. И каким то образом запилить возможность выключения этой фичи.
ответ
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
ответ
Рассмотрим на примере модельки простого огра, у него есть анимация атаки slam и удар дубиной по земле
  1. Старт атаки
  2. Создаём упреждающий в области впереди героя (маркер, ну эффект ауры например), чтобы игрокам было понятно что скоро тут что-то произойдёт
  3. Проигрываем анимацию "attack slam" или нужную другую, для замаха дубиной, если надо больше и не хватает стандартной скосроти, замедляем скорость анимации
  4. Визуально подгадываем или упытным путём определяем время касания дубиной полна от 1 до 4 сек, на ваше усмотрение
  5. Запускаем новый разовый таймер с нужным периодом, и как таймер сработает, создаём спец эффект, и наносим урон юнитам в области эффекта
(это самый простейший способ, хоть на гуи можно сделать)

23

» WarCraft 3 / Таймер вместо вейт

Похожие вопросы:

ответ
Юзать структуры, свои собственные системы хранения данных.
Если вы только решили слезть с гуи+ вейты на jass, то вам рано думать о таком.
Таймер + хештаблицы в помощь, в статьях есть много информации на эту тему.
Что вам еще непонятно?
ImbaStyle, что есть TriggerSleepActions и timer вам известно?
ответ
Нельзя просто использовать таймер вместо вейта посередине триггера (гуишный вейт именно так и работает - запускает таймер и проверяет циклом каждые 0.1 сек пока он не пройдет).
Но если так уж нужно узнать истек ли таймер:
Real comparison - Обратный отсчет - Remaining time for timer (оставшееся время таймера)
ответ
Ну если у тебя через локалку что-то неправильно иногда работает, значит просто у тебя где-то ошибка (или ты вообще делаешь это не так).
Для того что бы работать парой таймер+юнит впринципе то больше ничего и не нужно - таймер и сам юнит. Но если у тебя должно запускаться параллельно несколько точно таких же таймеров, то тут может подойти массив таймеров (и массив юнитов). При срабатывании одного из таймеров ты можешь ссылаться на юнита записанного под тем же индексом массива ( unit[X] и timer[X] соответственно).
А ещё в триггер можно добавлять события на срабатывания новых таймеров.

23

» WarCraft 3 / Сломалась кампания

Похожие вопросы:

ответ
это кучу систем =) это можно сделать и на гуи.
система домика
  1. ваш домик должен состоять из несколько частей: крыша и стены. Короче это два ваших юнита (крыша и стены). Для начала вам нужно уметь моделировать или попросить модельщика. Можно просто модель готового домика взять (например ферма) и разделить на две части. Трудного ничего нет.
Еще забыл сказать про полы, но это всегда не важная часть. Но пол наверное можно поднять, но поднимать удобнее, если играешь один. А то второй игрок заходит, а пола нет. Для мультиплеера лучше статичный пол
  1. Берем эти модели и даем их двум зданиям, из которых сделаны эти модели. У крыши и стен убираем карту путей, тип движения ставим "нет". Это влияет на движение, просто просто если это не убрать, то юниты упираются в преграду или не могут ставится друг на друга. вот здесь про проходимость и карту путей прочесть можно Только 1 юниту можно перерисовать карту путей (ты смотрел ссылку выше? ладно => xgm.guru/p/wc3/pathing-alternate). Можно снаружи поставить стенки, внутри пустошь. Обычно рисуют прямоугольниками и квадратиками и извнутри тоже все зарисовано, и внутрь юнит никогда не можешь зайти, тк упирается в преграду. Только воздух норм ходит. А если перерисовать так, чтоб были стены и проход внутрь.
  2. есть крыша и стены. когда юнит входит внутрь, то крышу можно делать прозрачной. Короче юнита прозрачным делаем. Можно через гетлокалплеер. Но для этого нужно зарегистрировать, как-то проверить что юнит входит в область
  3. прямоугольником (областью) участок земли должен зарегистрирован в область. Есть даже событие. Правда там область пихают в регион, и на регион вешают событие входа/выхода. Когда юнит входит, крышу делаем прозрачной, и видим что делает там юнит. Когда выходит, прозрачность возвращаем.
Если дом имеет больше 1 этажа, придется делать стены выше, полы 2 этажа.
Есть летающие юниты, которые могут подниматься над декорацией. Это тоже можно использовать. Например движение по лестнице на второй этаж и так далее
Вроде эту систему можно посмотреть тут <= в этой системе юнит может по бочками прыгать и подниматься выше по ним. Можно сделать лестницу какую нибудь. Все зависит от модели, если лестница имеет платформу по наклонной, то и юнит будет лететь по наклонной. Все что надо это тип движения поменять. А меняем через морф
теперь нужно чтобы этот домик можно было разрушить: это проще простого. домик состоит из двух частей: стен и крыши. Короче два здания. По идее крыша это просто декор, и делаем ее неуязвимой. Страдают только стены. По идее юнит должен бить по стенам. Как извнутри не знаю, но должен бить по стенам также. Еще чтобы крыша горела вместе с стенами, то можно вместе с стенами хп отнимать.
Вообще на это влияют пустышки горения см. раздел пустышки